﻿#include "mygraphicsview.h"


MyGraphicsView::MyGraphicsView(QWidget *parent):QGraphicsView(parent)
{
    setDragMode(QGraphicsView::ScrollHandDrag);             // 支持拖拽
    setTransformationAnchor(QGraphicsView::AnchorUnderMouse); // 缩放时以鼠标位置为中心
}

void MyGraphicsView::wheelEvent(QWheelEvent *event)
{
    if (event->modifiers() & Qt::ControlModifier) {  // 检查是否按下了 Ctrl 键
        // 计算缩放因子：滚轮向上（>0）放大 1.1 倍，向下（<0）缩小 0.9 倍
        double scaleFactor = (event->angleDelta().y() > 0) ? 1.1 : 0.9;
        // 对视图进行缩放
        scale(scaleFactor, scaleFactor);
    } else {
        // 如果没有按下 Ctrl，则调用基类的默认滚轮事件（例如滚动视图）
        QGraphicsView::wheelEvent(event);
    }
}
